Electronic forms usually take into consideration several factors to control what data on the form end users will be able to see or the extent of user interaction with the forms. These factors can include user privileges (e.g., permissions, roles), the personal data of the user (e.g., marital status, age, location), and the user environment (e.g., browser type, hardware capabilities, bandwidth capacity), for example. Each variation of these factors can change the content of the electronic form or the size of the data associated with the form controls which in turn can affect the performance of the form (e.g., load time, rendering time, number of simultaneous forms the server can handle (scale), and responsiveness to user actions).
The variety of these factors makes it very difficult and time consuming for developers to provide new functionality that satisfy the expected performance levels while accounting for all these factors. Thus, this forces the developers to make tradeoffs to optimize the electronic forms for the majority or specific target of the end users during coding phase. In fact, depending on the size of the data that needs to be processed, the electronic form performance can be enhanced by either running the logic that applies to the data in the browser environment on the client or on the server. For small datasets, live updates to formatting, calculations, filters, etc., are better computed in the browser and can be shown immediately without the latency or cost of a server roundtrip.
One approach decides whether a feature will need to run on the server or whether client-side code will be provided that enables most of the feature functionality on the user machine. The decision can be based mainly on the targeted usage scenario and the amount of data that will need to be exchanged between the browser and the server for that targeted scenario. Regardless of the decision, a subset of customers whose usage scenario can generate different data sizes end up experiencing deteriorated and sometimes unacceptable application performance.